#!/usr/bin/env python
#coding=utf-8

#UDP相对于TCP在传输层提供更少的控制，没有建立连接、断开连接等概念，所以基于UDP的Socket通信过程也比TCP稍微简单。在UDP中可以直接通过指定IP:PORT进行数据收发。UDP Socket可以复用TCP中的socket()和bind()原语，除此之外，UDP属于自己的Socket原语如下：
#recvfrom(): 从绑定的地址接收数据
#sendto()： 向指定的地址发送数据，在调用的参数中应该穿入通信对端的地址和端口。

import socket

HOST = '0.0.0.0'
PORT = 3434

#AF_INET说明使用IPv4地址， SOCK_DGRAM指明UDP
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind((HOST, PORT))

while True:
    data, addr = s.recvfrom(1024)
    print('Received: Hello UDP! from %s' % (str(addr)))

s.close()

#代码通过socket()和bind()调用绑定了本地所有地址的3434端口，通过socket()中的 SOCK_DGRAM 指定Socket使用UDP，在一个循环中不断地接收数据并打印。
